path = getSdPath() .. "/TomatoOCR"

--[===[if fileExist(path) then
print(path.." 存在了")
delfile(path)
end

if fileExist(path) == false then
	print(path.." 不存在了")
end]===]
------------------------MD5

for i = 1 , 20 do
	_ENV["OCR路径"] = getSdPath() .. "/TomatoOCR"
	mkdir(_ENV["OCR路径"])
	
	local path = _ENV["OCR路径"]---释放的路径
	if not fileExist(path) then
		print("创建")
		mkdir(path)
	end
	if fileExist(_ENV["OCR路径"] .. "/TomatoOCR.apk") == false then
		toast("释放插件")
		print("释放插件")
		extractAssets("TomatoOCR.rc" , path , "*.*")
	end
	if fileExist(_ENV["OCR路径"] .. "/TomatoOCR.apk") == false then
		toast("开始下载文件")
		sleep(1000)
		if downloadFile("https://8.148.227.25:27837/down/BLuYoKChiCWH.apk" , _ENV["OCR路径"] .. "/TomatoOCR.apk") == - 1 then
			delfile(_ENV["OCR路径"])
			toast("下载文件失败")
			sleep(5000)
		end
	end
	local loader = LuaEngine.loadApk(_ENV["OCR路径"] .. "/TomatoOCR.apk")
	if loader == nil then
		toast("导入失败")
		print("导入失败")
		sleep(5000)
		delfile(_ENV["OCR路径"])
	else
		local OCR = loader.loadClass("com.tomato.ocr.lr.OCRApi")
		if OCR == nil then
			toast("加载失败")
			print("加载失败")
			sleep(5000)
			delfile(_ENV["OCR路径"])
		else
			TomatoOCR = OCR.init(LuaEngine.getContext() , "ch-3.0")
			local flag = TomatoOCR.setLicense("UBWWQIUEZFPOHU80NLH6PZRC7LY9E5AE|cJ7o4lImU9k3GYXoMxUnS9RY")
			print( flag)
			local OCR返回 = jsonLib.decode(flag)
			--print( OCR返回)-- ==> "success",
			if OCR返回.status == "success" or OCR返回.message == "success" then
				toast("加载成功")
				break
			else
				toast("加载失败重试")
				stopApp("fun.kitsunebi.kitsunebi4android")
				stopApp("moe.nb4a")
			end
			
			sleep(3000)
		end
	end
end

_ENV["文字寻找E"] = function(找色组 , 类型 , 关键字组 , 点击)
	--print(找色组, 类型, 关键字组,点击)
	if 找色组[1] == nil or 找色组[2] == nil or 找色组[3] == nil or 找色组[4] == nil then
		
		print("文字识别--空坐标")
		return false
	end
	
	--print(找色组)
	local jsonstring = nil
	local 路径 = _ENV["OCR路径"] .. "/ocr.png"
	local Bitmap = LuaEngine.snapShot(找色组[1] , 找色组[2] , 找色组[3] , 找色组[4])
	if Bitmap then
		jsonstring = TomatoOCR.ocrBitmap(Bitmap , 类型)
	else
		print("截图失败，可能坐标无效")
		return false
	end
	
	--print(jsonstring)
	if jsonstring~= nil and jsonstring ~= "" then
		local 转换结果 = jsonLib.decode(jsonstring)
		if 1 <= #转换结果 then
			if 关键字组 ~= nil then
				local 关键字 = splitStr(关键字组 , "|")
				for i = 1 , #转换结果 do
					
					for m = 1 , #关键字 do
						
						local ret = string.find(转换结果[i].words , 关键字[m] , 1)
						--print(转换结果[i].words,关键字[m],ret)
						if ret ~= nil then
							Bitmap.recycle()
							_ENV["坐标X"] = 转换结果[i].location[1][1] + 找色组[1]
							_ENV["坐标Y"] = 转换结果[i].location[1][2] + 找色组[2]
							-- print(_ENV["坐标X"],_ENV["坐标Y"])
							if 点击 then
								_ENV["鼠标_随机点击"](_ENV["坐标X"] , _ENV["坐标Y"] , 800 , 1000)
							end
							return true
						end
					end
				end
				Bitmap.recycle()
				return false
			else
				
				--print(_ENV["坐标X"],_ENV["坐标Y"])
				return true
			end
		end
		
		return false
	end
	Bitmap.recycle()
	return false
end

_ENV["文字识别"] = function(x1 , y1 , x2 , y2 , 类型 , 关键字组)
	
	if x1 == nil or y1 == nil or x2 == nil or y2 == nil then
		print(x1 , y1 , x2 , y2)
		print("文字识别--空坐标")
		
		return ""
	end
	类型 = 3
	local 识别结果 = ""
	local Bitmap = LuaEngine.snapShot(x1 , y1 , x2 , y2)
	if Bitmap then
		TomatoOCR.setDetUnclipRatio(2.1)
		local jsonstring = TomatoOCR.ocrBitmap(Bitmap , 类型)
	
	--local jsonstring =PaddleOcr.detect(Bitmap)  ----百度免费版本
	--print("jsonstring")
	--print(jsonstring)
	if jsonstring ~= "" then
		local 转换结果 = jsonLib.decode(jsonstring)
		--print(转换结果[1])
		if 1 <= #转换结果 then
			
			if 关键字组 ~= nil then
				local 关键字 = splitStr(关键字组 , "|")
				for i = 1 , #转换结果 do
					for m = 1 , #关键字 do
						
						local ret = string.find(转换结果[i].words , 关键字[m] , 1)
						if ret ~= nil then
							_ENV["坐标X"] = 转换结果[i].location[1][1] + x1
							_ENV["坐标Y"] = 转换结果[i].location[1][2] + y1
							--print(_ENV["坐标X"] , _ENV["坐标Y"])
							Bitmap.recycle()
							
							Bitmap.recycle()
							return 转换结果[i].words
						end
					end
				end
				Bitmap.recycle()
				return ""
			else
				
				_ENV["坐标X"] = 转换结果[1].location[1][1] + x1
				_ENV["坐标Y"] = 转换结果[1].location[1][2] + y1
				--print(_ENV["坐标X"] , _ENV["坐标Y"])
				Bitmap.recycle()
				return 转换结果[1].words
			end
		end
		Bitmap.recycle()
		return ""
	end
	else
		print("截图失败，可能坐标无效")
		return ""
	end
	
	--Bitmap.recycle()
	return ""
end

_ENV["文字寻找"] = function(x1 , y1 , x2 , y2 , 类型 , 文字 , 匹配 , 点击)
	local 开始时间 = tickCount()
	local 路径 = _ENV["OCR路径"] .. "/ocr.png"
	snapShot(路径 , x1 , y1 , x2 , y2)
	local Tomato = TomatoOCR.ocrFile(路径 , 类型)
	if Tomato ~= "" then
		local 转换结果 = jsonLib.decode(Tomato)
		
		if 1 <= #转换结果 then
			local 文字数组 = splitStr(文字 , "|")
			if 匹配 == "模糊" then
				for i = 1 , #转换结果 do
					for g = 1 , #文字数组 do
						if string.find(转换结果[i].words , 文字数组[g] , 1) ~= nil then
							_ENV["坐标X"] = 转换结果[i].location[1][1] + x1
							_ENV["坐标Y"] = 转换结果[i].location[1][2] + y1
							if 点击 then
								_ENV["鼠标_随机点击"](_ENV["坐标X"] + 10 , _ENV["坐标Y"] + 10 , 800 , 1000)
							end
							_ENV["找字信息"] = {
								["文字"] = 转换结果[i].words ,
								["坐标X"] = _ENV["坐标X"] ,
								["坐标Y"] = _ENV["坐标Y"]
							}
							print("耗时:" .. tickCount() - 开始时间 .. "ms")
							return true
						end
					end
				end
				return false
			else
				for i = 1 , #转换结果 do
					for g = 1 , #文字数组 do
						if 转换结果[i].words == 文字数组[g] then
							_ENV["找字信息"] = {
								["文字"] = 转换结果[i].words ,
								["坐标X"] = 转换结果[i].location[1][1] + x1 ,
								["坐标Y"] = 转换结果[i].location[1][2] + y1
							}
							print("耗时:" .. tickCount() - 开始时间 .. "ms")
							if 点击 then
								_ENV["鼠标_随机点击"](_ENV["找字信息"]["坐标X"] + 10 , _ENV["找字信息"]["坐标Y"] + 10 , 800 , 1000)
							end
							return true
						end
					end
				end
				return false
			end
		end
		return false
	end
	return false
end

_ENV["文字寻找精准"] = function(x1 , y1 , x2 , y2 , 类型 , 文字 , 点击)
	
	local 开始时间 = tickCount()
	local 路径 = _ENV["OCR路径"] .. "/ocr.png"
	snapShot(路径 , x1 , y1 , x2 , y2)
	local Tomato = TomatoOCR.ocrFile(路径 , 类型)
	
	if Tomato ~= "" then
		local 转换结果 = jsonLib.decode(Tomato)
		if 1 <= #转换结果 then
			local 文字数组 = splitStr(文字 , "|")
			
			for i = 1 , #转换结果 do
				for g = 1 , #文字数组 do
					
					if 转换结果[i].words == 文字数组[g] then
						_ENV["找字信息"] = {
							["文字"] = 转换结果[i].words ,
							["坐标X"] = 转换结果[i].location[1][1] + x1 ,
							["坐标Y"] = 转换结果[i].location[1][2] + y1
						}
						print("耗时:" .. tickCount() - 开始时间 .. "ms")
						if 点击 then
							_ENV["鼠标_随机点击"](_ENV["找字信息"]["坐标X"] + 10 , _ENV["找字信息"]["坐标Y"] + 10 , 800 , 1000)
						end
						return true
					end
				end
			end
			return false
			
		end
		return false
	end
	return false
end

